package cn.sumpu.app.guoguojie.dao;

import java.util.List;
import java.util.Map;

import cn.sumpu.app.guoguojie.domain.Feed;
import cn.sumpu.app.guoguojie.domain.Ext.FeedExt;
import cn.sumpu.app.guoguojie.exception.AppBusinessException;

public interface FeedDao {
	public void insert(Feed feed) throws AppBusinessException;

	public List<FeedExt> getFeedByGroup(Map<String, Object> map)
			throws AppBusinessException;

	public void updateFeed(Feed feed) throws AppBusinessException;

	public void deleteFeedById(String id) throws AppBusinessException;

	public Feed getFeedById(String id) throws AppBusinessException;

	public List<FeedExt> getFriendFamilyAllFeedList(Map<String, Object> map)
			throws AppBusinessException;

	public List<FeedExt> getMyFamilyFeedList(Map<String, Object> map)
			throws AppBusinessException;

	public void deleteBlogFeed(String blogId) throws AppBusinessException;

	public int getFriendFamilyAllFeedListCount(Map<String, Object> map)
			throws AppBusinessException;

	public int getFeedByGroupCount(Map<String, Object> map)
			throws AppBusinessException;

	public void deleteFeed(Map<String, Object> map) throws AppBusinessException;

	public List<FeedExt> getDoingFeed(Map<String, Object> map)
			throws AppBusinessException;

	public int getFeedCount(Map<String, Object> map)
			throws AppBusinessException;

	public List<FeedExt> getDoingByClassify(Map<String, Object> map)
			throws AppBusinessException;

	public List<FeedExt> getAllFeedByClassify(Map<String, Object> map)
			throws AppBusinessException;

	public List<FeedExt> getFeedByGroupClassify(Map<String, Object> map)
			throws AppBusinessException;

	public int getDoingFeedCount(Map<String, Object> map)
			throws AppBusinessException;

	public int getDoingByClassifyCount(Map<String, Object> map)
			throws AppBusinessException;

	public int getFeedByGroupClassifyCount(Map<String, Object> map)
			throws AppBusinessException;

	public int getFriendFamilyAllFeedCount(Map<String, Object> map)
			throws AppBusinessException;

	public int getAllFeedByClassifyCount(Map<String, Object> map)
			throws AppBusinessException;
	
	/**
	 * author 		Bruce Zhang
	 * @param map	门牌号和动态类型
	 * @return 		他家的动态
	 * @throws AppBusinessException
	 */
	public List<FeedExt> getFeedByDoorplate(Map<String, Object> map) throws AppBusinessException;
	
	/**
	 * author Bruce 	Zhang
	 * @param String	门牌号
	 * @return 他家的动态的总记录数
	 * @throws AppBusinessException
	 */
	public Integer getFeedByDoorplateCount(Map<String, Object> map) throws AppBusinessException;
	
}
